﻿#region Revision Info

// This file is part of UltimateHealer - A community driven Honorbuddy CC
// $Author: raphus $
// $Date: 2011-12-15 21:22:52 +0200 (Per, 15 Ara 2011) $
// $HeadURL: http://svn.apocdev.com/UltimateHealer/trunk/UltimateHealer/Settings/PaladinSettings.cs $
// $LastChangedBy: raphus $
// $LastChangedDate: 2011-12-15 21:22:52 +0200 (Per, 15 Ara 2011) $
// $LastChangedRevision: 478 $
// $Revision: 478 $

#endregion

using System.ComponentModel;

using UltimateHealer.ClassSpecific.Paladin;

using Styx.Helpers;

using DefaultValue = Styx.Helpers.DefaultValueAttribute;

namespace UltimateHealer.Settings
{
    internal class PaladinSettings : Styx.Helpers.Settings
    {
        public PaladinSettings()
            : base(UltimateHealerSettings.SettingsPath + "_Paladin.xml")
        {
        }

        #region default
        [Setting]
        [DefaultValue(PaladinAura.Auto)]
        [Category("Common")]
        [DisplayName("Aura")]
        [Description("The aura to be used while not mounted. Set this to Auto to allow the CC to automatically pick the aura depending on spec.")]
        public PaladinAura Aura { get; set; }

        [Setting]
        [DefaultValue(70)]
        [Category("Common")]
        [DisplayName("Divine Plea Mana")]
        [Description("Divine Plea will be used at this value")]
        public double DivinePleaMana { get; set; }
        #endregion

        #region custom

        [Setting, DefaultValue(PaladinAura.Auto)]
        [Category("Common"), DisplayName("Aura Type"), Description("Which Aura to use. Set to None to deactivate switching")]
        public PaladinAura AuraType { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Common"), DisplayName("Cleanse"), Description("Should we Cleanse. If enabled we take some logic into account for Raiding (e.g Disrupting Shadows in Hardmode Zonozz)")]
        public bool wannaCleanse { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Common"), DisplayName("Cleanse Urgents"), Description("Should we Urgent Cleanse. If Cleanse is disabled, this is disabled too. Follows the same logic for Zonozz and maybe other fights")]
        public bool wannaCleanseUrgents { get; set; }

        [Setting, DefaultValue(false)]
        [Category("Movement"), DisplayName("Crusader Aura"), Description("Should we use switch to Crusader Aura when mounted. Does not work when Auratype is disabled")]
        public bool wannaCrusaderAura { get; set; }

        [Setting, DefaultValue(false)]
        [Category("DPS"), DisplayName("Crusader Strike"), Description("Should we use Crusader Strike")]
        public bool wannaCrusaderStrike { get; set; }

        [Setting, DefaultValue(false)]
        [Category("DPS"), DisplayName("Holy Wrath"), Description("Should we use Holy Wrath")]
        public bool wannaHolyWrath { get; set; }

        [Setting, DefaultValue(false)]
        [Category("DPS"), DisplayName("Hammer of Wrath"), Description("Should we use Hammer of Wrath")]
        public bool wannaHammerofWrath { get; set; }
        
        [Setting, DefaultValue(3)]
        [Category("DPS"), DisplayName("Consecration Count"), Description("Consecration will be used when you have more then that many mobs attacking you")]
        public int ConsecrationCount { get; set; }
        
        [Setting, DefaultValue(false)]
        [Category("DPS"), DisplayName("Consecration"), Description("Should we use Consecration")]
        public bool wannaConsecration { get; set; }

        [Setting, DefaultValue(true)]
        [Category("DPS"), DisplayName("Judgement"), Description("Should we use Judgement")]
        public bool wannaJudge { get; set; }
        
        [Setting, DefaultValue(false)]
        [Category("DPS"), DisplayName("Exorcism"), Description("Should we use Exorcism")]
        public bool wannaExorcism { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Oh shit"), DisplayName("Avenging Wrath"), Description("Should we use Avenging Wrath")]
        public bool wannaAvengingWrath { get; set; }

        [Setting, DefaultValue(true)]
        [Category("Oh shit"), DisplayName("Divine Favor"), Description("Should we use Divine Favor")]
        public bool wannaDivineFavor { get; set; }

        [Setting, DefaultValue(50)]
        [Category("Oh shit"), DisplayName("Divine Favor Health"), Description("use Divine Favor if people dropping below this")]
        public int DivineFavorHealth { get; set; }
        [Setting, DefaultValue(3)]
        [Category("Oh shit"), DisplayName("Divine Favor Members"), Description("use Divine Favor if this many people drop below Health")]
        public int DivineFavorMembers { get; set; }

        [Setting, DefaultValue(50)]
        [Category("Oh shit"), DisplayName("Guardian of the Ancient Kings Health"), Description("use Guardian of the Ancient Kings if people dropping below this")]
        public int GuardianoftheAncientKingsHealth { get; set; }

        [Setting, DefaultValue(3)]
        [Category("Oh shit"), DisplayName("Guardian of the Ancient Kings Members"), Description("use Guardian of the Ancient Kings if this many people drop below Health")]
        public int GuardianoftheAncientKingsMembers { get; set; }

        [Setting, DefaultValue(50)]
        [Category("Oh shit"), DisplayName("Avenging Wrath Health"), Description("use Avenging Wrath if people dropping below this")]
        public int AvengingWrathHealth { get; set; }

        [Setting, DefaultValue(3)]
        [Category("Oh shit"), DisplayName("Avenging Wrath Members"), Description("use Avenging Wrath if this many people are dropping below Health")]
        public int AvengingWrathMembers { get; set; }
        
        [Setting, DefaultValue(40)]
        [Category("Emergency"), DisplayName("Oh shit HP"), Description("Use Abilities from this category if someone drops below this Healthpercent. Set to 0 to deactivate.")]
        public int minOhShitButtonActivator { get; set; }

        [Setting, DefaultValue(false)]
        [Category("Interrupts"), DisplayName("Hammer of Justice"), Description("Use Hammer of Justice")]
        public bool wannaHoJ { get; set; }

        [Setting, DefaultValue(false)]
        [Category("Interrupts"), DisplayName("Rebuke"), Description("Use Rebuke")]
        public bool wannarebuke { get; set; }

        [Setting, DefaultValue(70)]
        [Category("Healing"), DisplayName("Holy Radiance"), Description("Use Holy Radiance at this Healthpercent. Set to 0 to deactivate")]
        public int minHolyRadiance { get; set; }
        [Setting, DefaultValue(3)]
        [Category("Healing"), DisplayName("Holy Radiance Count"), Description("How many players with HR HP should be inside of Holy Radiance Range.")]
        public int minHolyRadianceCount { get; set; }

        [Setting,DefaultValue(90)]
        [Category("Healing"), DisplayName("Holy Shock Health"), Description("Holy Shock will be used at this value")]
        public int HolyShockHealth { get; set; }



        [Setting, DefaultValue(70)]
        [Category("Healing"), DisplayName("Divine Light"), Description("Use Divine Light at this Healthpercent. Set to 0 to deactivate")]
        public int minDivineLight { get; set; }

        [Setting, DefaultValue(70)]
        [Category("Healing"), DisplayName("Divine Light IoL"), Description("Use Divine Light on Infusion of Light Procc, but only if Target is below this Percent. Set to 0 to deactivate. Is used on Procc if not disabled, no matter what Divine Light is set to.")]
        public int minDivineLightIoL { get; set; }

        [Setting, DefaultValue(35)]
        [Category("Healing"), DisplayName("Flash of Light"), Description("Use Flash of Light at this Healthpercent. Set to 0 to deactivate. Is never used on Tanks!")]
        public int minFlashofLight { get; set; }
        
        [Setting, DefaultValue(85)]
        [Category("Healing"), DisplayName("Holy Light"), Description("Use Holy Light at this Healthpercent. Set to 0 to deactivate. Is never used on Tanks!")]
        public int minHolyLight { get; set; }

        [Setting, DefaultValue(3)]
        [Category("Healing"), DisplayName("Light of Dawn Count"), Description("Use Light of Dawn if this many people are inside. Set to 99 to deactivate.")]
        public int LightofDawnCount { get; set; }
        
        [Setting, DefaultValue(85)]
        [Category("Healing"), DisplayName("Light of Dawn Health"), Description("Use Light of Dawn at this Healthpercent. Set to 0 to deactivate.")]
        public int LightOfDawnHealth { get; set; }

        [Setting, DefaultValue(85)]
        [Category("Healing"), DisplayName("Word of Glory Health"), Description("Use Word of Glory at this Healthpercent. Set to 0 to deactivate.")]
        public int WordOfGloryHealth { get; set; }
        

        [Setting, DefaultValue(85)]
        [Category("Emergency"), DisplayName("Divine Protection"), Description("Use Divine Protection at this Healthpercent. Set to 0 to deactivate")]
        public int minDivineProtection { get; set; }

        [Setting, DefaultValue(35)]
        [Category("Emergency"), DisplayName("Divine Shield"), Description("Use Divine Shield at this Healthpercent. Set to 0 to deactivate")]
        public int minDivineShield { get; set; }

        [Setting, DefaultValue(25)]
        [Category("Emergency"), DisplayName("Hand of Protection"), Description("Use Hand of Protection at this Healthpercent. Set to 0 to deactivate. Is never used on Tanks!")]
        public int minHandofProtection { get; set; }

        [Setting, DefaultValue(65)]
        [Category("Emergency"), DisplayName("Hand of Sacrifice"), Description("Use Hand of Sacrifice at this Healthpercent. Set to 0 to deactivate.")]
        public int minHandofSacrifice { get; set; }

        [Setting, DefaultValue(15)]
        [Category("Emergency"), DisplayName("Lay on Hands"), Description("Use Lay on Hands at this Healthpercent. Set to 0 to deactivate.")]
        public int minLayonHands { get; set; }
       #endregion
    }
}